package com.sdkj.recruit.dao;

import java.util.List;
import java.util.Map;

import org.springframework.data.mongodb.core.query.Criteria;

import com.sdkj.recruit.model.Company;
import com.sdkj.recruit.model.CompanyEnvironment;
import com.sdkj.recruit.model.CompanyResume;
import com.sdkj.recruit.model.EducationalExperience;
import com.sdkj.recruit.model.Label;
import com.sdkj.recruit.model.Position;
import com.sdkj.recruit.model.PositionCollection;
import com.sdkj.recruit.model.Resume;
import com.sdkj.recruit.model.WorkExperience;

public interface ICompanyDao {

	void saveCompany(Company map);

	Company queryCompanyById(String companyId);

	void deleteCompany(String companyId);

	List<Company> queryCompanyList(int pageNo, int pageSize, int companyType);

	long queryAllCompanyCount(int keyWord);

	Company queryCompanyByMobile(String mobile);

	void updatePassword(String mobile, String password);

	void saveOrUpdateDocument(Class<Company> class1, Map<String, Object> map, Criteria eq);

	List<Resume> queryResumeList(int pageNo, int pageSize, String keyWord);

	long queryResumeList(String keyWord);

	List<CompanyResume> queryDeliverResumeList(int pageNo, int pageSize, String keyWord, String companyId);

	long queryAllDeliverResumeCount(String keyWord, String companyId);

	Resume queryResumeById(String resumeId);

	void savePosition(Position map);

	List<Position> queryPositionList(int pageNo, int pageSize, String keyWord, String companyId);

	long queryAllPositionCount(String keyWord, String companyId);

	WorkExperience queryWorkExperienceById(String id);

	EducationalExperience queryEducationalExperienceById(String id);

	Position queryPositionById(String id);

	List<Position> queryPositionList(int pageNo, int pageSize, String companyId);

	long queryAllPositionCount(String companyId);

	void updatePosition(Position object);

	void collection(PositionCollection p);

	List<PositionCollection> querycollectionList(int pageNo, int pageSize, String userId);

	long queryAllCollectionCount(String userId);

	PositionCollection queryCollectionById(String positionId, String userId);

	void updateStatus(String id, int status);

	void deleteCollection(String userId, String positionId);

	List<CompanyResume> deliverList(int pageNo, int pageSize, String userId);

	List<Label> queryCompanyLableList(String companyId);

	void updateCompany(Map<String, Object> maps, String companyId);

	List<Position> queryPositionList(int pageNo, int pageSize, int queryType,String keyword);

	void addCount(String id);

	List<WorkExperience> queryWorkExperienceByResumeId(String resumeId);

	List<EducationalExperience> queryEducationalExperienceByResumeId(String resumeId);


	void saveCompanyPic(List<CompanyEnvironment> list);

	List<CompanyEnvironment> queryCompanyEnvironmentByCompanyId(String companyId);

	List<Company> queryNearbyCompany(int pageNo, int pageSize, String longitude, String latitude, int distance);

	void updateCompanyMobile(String companyId, Map<String, Object> obj);

	List<Position> queryPositionListNews(int pageNo, int pageSize, int queryType, String longitude, String latitude);

	void queryAllPositions();

	void sethotCompany();

	void updateNewPassword(String mobile, String newpsw);
}
